The present invention relates to software or computer programs, and more specifically, to methods, systems and computer program products that provide a common debug scripting framework for driving hybrid software or computer program applications each comprising one or more compiled language computer program components and one or more interpreted language computer program components.
In modern software or computer programs (otherwise known and referred to herein as “applications”), it is common to have a single application that is written in different programming languages. Also, these different programming languages may comprise different types of languages, such as compiled languages (e.g., C, C++, COBOL, etc.) and interpreted languages (e.g., Java). Thus, it is increasingly common nowadays to have an application that is “hybrid” in nature in that it is comprised of one or more compiled computer program or programming language components and one or more interpreted computer program or programming language components. This may be done for various reasons, including, for example, to save application development time by utilizing existing, proven functionality contained in legacy code written in one type of language (e.g., libraries, subroutines, modules, etc. written in an older compiled language such as COBOL) together with original, newly-written code that is written in a relatively more modern interpreted language such as JAVA.
A recurring issue and challenge with such a hybrid computer program or application resides in the difficulty in the debugging or identifying of errors in the application as it is being written. This is inherent because the debugging of compiled languages requires a relatively significantly different debugging engine technology as compared to the debugging engine technology of interpreted languages. As a consequence of using different underlying debug engines, it is difficult to utilize a common scripting language (e.g., Python) capable of driving both sides of the hybrid application. This occurs because scripting languages are typically tied to the debug engine itself.